<%@ page import="org.springframework.web.context.request.SessionScope" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%request.setAttribute("ctx", request.getContextPath());%>
<html>
<head>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="${pageContext.request.contextPath}/layui-v2.9.14/css/layui.css">
    <script src="${pageContext.request.contextPath}/layui-v2.9.14/jquery-2.1.0.min.js"></script>
    <script src="${pageContext.request.contextPath}/layui-v2.9.14/layui.js"></script>
    <script src="${pageContext.request.contextPath}/layui-v2.9.14/layui_ext/xmSelect/xm-select.js"></script>
    <script src="${pageContext.request.contextPath}/layui-v2.9.14/crypto-js.js"></script>
    <title>角色添加</title>
</head>
<body>
<form class="layui-form" action="">
    <div class="layui-form-item">
        <input type="text" name="roleId" id="roleId">
        <label class="layui-form-label">角色名称</label>
        <div class="layui-input-block">
            <input type="text" id="roleName" name="roleName" lay-verify="required" placeholder="请输入" autocomplete="off" class="layui-input">
        </div>
    </div>
    <div id="ID-tree-demo-showCheckbox"></div>
    <div class="layui-form-item">
        <div class="layui-input-block">
            <button type="submit" class="layui-btn" lay-submit lay-filter="demo1">立即提交</button>
            <button type="reset" class="layui-btn layui-btn-primary">重置</button>
        </div>
    </div>
</form>

<script>
    layui.use(['form', 'laydate', 'util'], function(){
        var form = layui.form;
        var layer = layui.layer;
        var laydate = layui.laydate;
        var util = layui.util;
        var tree = layui.tree;



        $("#roleName").on("blur",function () {
            var roleName=$("#roleName").val();

            $.post("/role/checkRoleName.do",{roleName:roleName},function (res) {
                if (res.code!=0){
                    layer.msg(res.msg,function () {
                        $("#roleId").val(res.data.roleId)
                        tree.setChecked('test', res.data.menuIds);
                    })
                }else {
                    $("#roleId").val('');
                    tree.reload('test', { // options
                        data: data
                    });
                }
            })
        })



        // 模拟数据
        var data = JSON.parse('${tbMenuList}')
        // 渲染
        tree.render({
            elem: '#ID-tree-demo-showCheckbox',
            data: data,
            showCheckbox: true,
            id: 'test',
            edit: ['add', 'update', 'del'], // 开启节点的右侧操作图标
            customName: { // 自定义 data 字段名 --- 2.8.14+
                id: 'menuId',
                title: 'name',
                children: 'children'
            },
        });


        // 提交事件
        form.on('submit(demo1)', function(data){
            var field = data.field; // 获取表单字段值
            var menuIds="";
            // 获取选中的节点数据
            var checkData = tree.getChecked('test');

            for (let i = 0; i < checkData.length; i++) {
                menuIds+=","+checkData[i].menuId;
                let children = checkData[i].children;
                for (let j = 0; j < children.length; j++) {
                    menuIds+=","+children[j].menuId;
                }
            }
            menuIds=menuIds.substring(1);

            field.menuIds=menuIds;
            console.log(field);
            $.post("/role/add.do",field,function (res) {
                if (res.code==0){
                    layer.msg(res.msg,function () {
                        location.href="/role/tolist.do"
                    })
                }else {
                    layer.msg(res.msg);
                }
            })

            return false; // 阻止默认 form 跳转
        });

        // 日期
        laydate.render({
            elem: '#date'
        });

        // 普通事件
        util.on('lay-on', {
            // 获取验证码
            "get-vercode": function(othis){
                var isvalid = form.validate('.demo-phone'); // 主动触发验证，v2.7.0 新增
                // 验证通过
                if(isvalid){
                    layer.msg('手机号规则验证通过');
                    // 此处可继续书写「发送验证码」等后续逻辑
                    // …
                }
            }
        });
    });
</script>

</body>
</html>